Важно: UNet — это устаревшее решение, а также новая многопользовательская и сетьсистема Unity, которая обеспечивает многопользовательскую игру. игры через компьютерную сеть. Подробнее См. в Словарь Решение (Netcode для GameObjects) находится в разработке. Дополнительную информацию и дальнейшие действия см. на веб-сайте Unity Netcode for GameObjects. |
Компонент Network Identity лежит в основе сетевого высокоуровневого API Unity. Он управляет GameObjectосновным объектом в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
Увидеть в Словарь уникальный идентификатор в сети, и он использует этот идентификатор чтобы сетевая система знала об игровом объекте.
Свойства | Функции |
---|---|
Server Only | Установите этот флажок, чтобы убедиться, что Unity создает GameObject только на сервере, а не на клиентах. |
Local Player Authority | Установите этот флажок, чтобы предоставить авторизованный сетевой контроль над этим игровым объектом клиенту, которому он принадлежит. Игрок GameObject на этом клиенте имеет над ним полномочия. Другие компоненты, такие как Network Transform, используют это, чтобы определить, какой клиент следует рассматривать как источник полномочий. |
Создание сетевых игровых объектов
При использовании авторитетной для сервера сетевой системы Unity сервер должен создавать сетевые игровые объекты с сетевыми идентификаторами, используя NetworkServer.Spawn. Это автоматически создает их на клиентах, подключенных к серверу, и назначает им NetworkInstanceId.
Вы должны поместить компонент Network Identity в любой префабтип актива, который позволяет хранить GameObject вместе с компонентами и характеристики. Префаб действует как шаблон, из которого вы можете создавать новые экземпляры объектов в сцене. Подробнее
См. в Словарь, которые появляются во время выполнения, чтобы сетевая система могла их использовать. Дополнительную информацию см. в разделе Создание объектов.
Сетевые игровые объекты на основе сцен
Вы также можете подключить к сети игровые объекты, сохраненные как часть вашей СценыСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь (например, реквизит для окружающей среды). Сетевые игровые объекты заставляют их вести себя немного по-другому, потому что вам нужно, чтобы они появлялись в сети.
При создании игры Unity отключает все игровые объекты на основе сцен с компонентами Network Identity. Когда клиент подключается к серверу, сервер отправляет сообщения о появлении, чтобы сообщить клиенту, какие игровые объекты сцены следует включить и какова их самая свежая информация о состоянии. Это гарантирует, что игра клиента не будет содержать GameObjects в неправильных местах, когда они начинают играть, или что Unity не порождает и немедленно уничтожает GameObjects при подключении (например, если событие удалило GameObject до того, как этот клиент подключился). Дополнительные сведения см. в разделе Игровые объекты сетевой сцены.
Информация о сети на панели предварительного просмотра
Этот компонент содержит информацию об отслеживании сети и отображает эту информацию на панели предварительного просмотра. Например, идентификатор сцены, идентификатор сети и идентификатор актива, которые были присвоены объекту. Это позволяет вам проверять информацию, которая может быть полезна для исследования и отладки.
Идентификатор сцены действителен во всех объектах сцены с компонентом NetworkIdentity. Идентификатор сети — это идентификатор этого конкретного экземпляра объекта. Может быть несколько объектов, созданных из определенного префаба, и сетевой идентификатор используется для идентификации того, к какому объекту следует применить сетевое обновление. Идентификатор актива относится к тому, из какого исходного актива был создан экземпляр объекта. Это используется внутренне, когда конкретный префаб GameObject создается по сети.
Во время выполнения здесь отображается дополнительная информация (отключенный NetworkBehaviour отображается нежирным шрифтом):
Информация об панели предварительного просмотра
Свойства | Описание |
---|---|
assetId | Это идентифицирует префаб, связанный с этим объектом (для создания). |
clientAuthorityOwner | Клиент, имеющий полномочия для этого объекта. Это будет нулевым, если ни один клиент не имеет полномочий. |
connectionToClient | NetworkConnection, связанный с этим NetworkIdentity. Это действительно только для объектов игрокаОбъект API высокого уровня (HPAPI), который представляет игрока на сервере и имеет возможность запускать команды (которые представляют собой защищенные вызовы удаленных процедур между клиентом и сервером) из клиента проигрывателя. Подробнее См. в Словарь на сервере. |
connectionToServer | NetworkConnection, связанный с этим NetworkIdentity. Это допустимо только для объектов игрока на локальном клиенте. |
hasAuthority | Истинно, если этот объект является официальной версией объекта. Это означает либо сервер для обычных объектов, либо клиент с localPlayerAuthority. |
isClient | Истинно, если этот объект работает на клиенте. |
isLocalPlayer | Это возвращает true, если этот объект представляет игрока на локальном компьютере. |
isServer | Истинно, если этот объект запущен на сервере и был создан. |
localPlayerAuthority | Истинно, если этот объект контролируется клиентом, которому он принадлежит — локальный объект игрока на этом клиенте имеет над ним полномочия. Это используется другими компонентами, такими как NetworkTransformсетевой компонент, который позволяет синхронизировать перемещения игровых объектов по сети. Подробнее См. в Словарь. |
netIdУникальный идентификатор, присвоенный экземпляру объекта для отслеживания его между сетевыми клиентами и сервером. Подробнее См. в Словарь |
Уникальный идентификатор для этого сетевого сеанса, назначаемый при создании. |
observers | Список клиентских сетевых подключений, которые могут видеть этот объект. Это только для чтения. |
playerControllerId | Идентификатор контроллера, связанного с этим объектом. Действует только для объектов игрока. |
SceneId | Уникальный идентификатор сетевых объектов в сцене. Это заполняется только в игровом режиме. |
serverOnly | Флаг, чтобы этот объект не порождался на клиентах. |